package com.uvnos4j.matilda.commons.utils;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.OrderItem;

import java.util.ArrayList;
import java.util.List;

/**
 * Mybatis Plus 工具类
 *
 * @author Guo.wl
 */
public class MpUtil {

    /**
     * 拆分排序字符串，组装 Mybatis Plus 排序条件
     *
     * @param orderBy 排序字符串
     * @return Mybatis Plus 排序条件
     */
    public static List<OrderItem> getOrderList(String orderBy) {
        List<OrderItem> orderList = new ArrayList<>();
        if (StrUtil.isNotBlank(orderBy)) {
            for (String orderAndSort : orderBy.split(StrUtil.COMMA)) {
                String[] split = orderAndSort.split(StrUtil.SPACE);
                String order = split[0];
                String sort = split[1].toLowerCase();
                if ("asc".equals(sort)) {
                    orderList.add(OrderItem.asc(order));
                } else if ("desc".equals(sort)) {
                    orderList.add(OrderItem.desc(order));
                }
            }
        }
        return orderList;
    }

}